The present invention relates generally to computer source code generation, and more particularly, to the generation of business application source code with reuse components integrated.
Software reuse is usually identified with the reuse of source code across software systems. Source code is extremely difficult to reuse on a large scale. It has been estimated that U.S. companies waste as much as $145 billion a year on failed IT projects. Less than 10% of technology investments are completed on time and within budget.
Application architectures have been developed using an N-tier approach. N-tier applications have become the norm for building enterprise software. The terms “tier” and “layer” are used synonymously. The principles of N-tier design are concerned with building distinct layers into applications so that maintenance and development becomes a concentrated effort within a particular layer. FIG. 1 illustrates an N-tier software architecture known in the software development art. The logical layers of presentation 40, business logic 30, data access 20 and data 10 may reside on the same physical machine or on many physical machines. The data tier or layer 10 is basically a database management system. This layer is intended to deal with the storage and retrieval of information. This layer can range from complex high-end products such as SQL Server or Oracle to simple plain text files, including an XML database. The data access layer 20 is the interface to the data layer 10. It contains generic and specific methods that handle all data input and output and persist data into the database 10. The business logic layer 30 contains business objects and rules, data manipulation and transformation logic, etc. in other words, this layer manipulates and transforms data passed to it from the data access layer 20. The presentation layer (user interface layer) 40 is the layer that provides an interface for an end user into an application. It handles the transformation of the results output from the business logic layer 30 into something that is usable and readable by the end user.
A single application may have multiple components in a single layer. As examples, the presentation layer 40 may have both a web and a Windows-based user interface. There may be multiple business logic components involved in a single application including the main application logic as well as other components, for example, account validation, security, or personal/employee information stored in a different location. Different data access components can be used if there are different types of data stores in use, for example, Oracle, SQL Server, DB2, text files, etc.